Computers are used all over the world to perform a wide variety of tasks. Computers perform these tasks by processing software code which contains commands that are interpreted (or compiled) and executed by the computer. Software code is typically written by a developer using one or more scripting or programming languages. Many software programs are designed to interact with and process code and/or scripts written by other software developers. Such programs, however, often limit the types of scripts and/or code with which the software programs can interact. This is done primarily for reasons of compatibility and security.
One example of a software program designed to interact with code written by other developers is an internet browser. Internet browsers are designed to read files that describe the contents and layout of a web page (e.g., a Hypertext Markup Language (HTML) file) and display the web page according to the layout described in the file. The web page may include scripts (such as those written in JAVASCRIPT®), other text, or references to graphics files or objects such as ADOBE® SHOCKWAVE® or MICROSOFT® ACTIVEX® elements. The code for such scripts and references to objects and other elements can be embedded directly in the HTML file. Most browsers are designed to be able to read and display web pages that have incorporated a plurality of scripts, objects and other elements, although this may involve the installation of updates and/or plug-ins to properly display some objects.
Increasingly, there is a demand for easy-to-use, fast-loading, customized web pages. This demand has led to the development of new browser-based code implementations for processing and displaying web pages. One example of such an implementation is a scripting language that combines JavaScript and Extensible Markup Language (XML), the merger of which form Asynchronous JavaScript and XML (AJAX). AJAX is commonly used to develop complex software functions used by browsers to generate and display complex, dynamic web pages. Such complex functions often result in large files, frequently in the hundreds of kilobytes range. Such large files often take extensive amounts of time to download and/or process.
Furthermore, scripting languages such as JavaScript, XML and AJAX have limited capabilities in comparison with other full-fledged programming languages such as C++, C# and Visual Basic. Versatile programming languages such as these are much better suited for building complex programming interactions between software programs. Many times, however, browsers and other applications designed to read and implement code written by other developers are geared toward running scripts and are not designed to run code written in high-level languages such as C++, C# and Visual Basic.